1. Field of the Invention
The present invention relates generally to cache refresh, and more specifically to a technique for predictably refreshing a cache by prefetching information from a server before that information is actually requested by a client.
2. Description of the Related Art
When a client seeks to obtain information from servers in a communications network, it is desirable to provide a cache that maintains copies of that information so that multiple requests for the same information can be obtained at the cache, eliminating the need to repeatedly transmit that information across the network. Communication bandwidth used between clients and servers can be reduced. One problem in the art is that information requested a second time by the same client, or by a second client after a first client has already requested that information can change at the server between the time it is first requested and the time it is requested again. In such instances, the information transmitted from the cache is inaccurate.
“Design and Implementation of Interactive Prefetching System on WWW”, Ken-ici Chinen, et al., Computer Software Vol. 15, No. 2, pages 48–61, March 1998, describes a prefetching technique in which an object requested by a client is analyzed to detect hyperlinks and a preselected number of objects specified by the detected hyperlinks is prefetched from the server according to the order in which their requests have occurred.
Japanese Patent Publication 2000-148573 discloses a prefetching tool which uses keywords to extract hyperlink tags contained in HTML files retrieved from the WWW server. The keywords are set by users at a client device to indicate personal preferences and stored in the memory in a desired order of appearances. A list of URLs are stored in memory for indicating target objects to be prefetched. The prefetch tool makes a search through the URL list for detecting a corresponding keyword, and if there is one, prefetches an object specified by the hyperlink of the detected keyword. The order of prefetching is determined by the number of keywords used and the number of client's accesses to the hyperlinks.
In Japanese Patent Publication 1999-120069, a number of predetermined URLs are used to select a target object. This publication further discloses a prefetching operation that is performed based on keywords.
The prefetching technique disclosed in Japanese Patent Publication 1999-149405 involves selecting URLs that are frequently used by clients from a list of frequently accessed hyperlinks.
U.S. Pat. No. 6,128,701 discloses a cache refreshing method and system in which the prefetching performance is evaluated by using the theory of probability to calculate frequencies with which client requests occur and objects are updated.
However, one shortcoming of the prior art techniques is that there is a substantial number of instances in which the cache is repeatedly refreshed with the same information. Repeated wasteful actions would unnecessarily increase the communication bandwidth between the cache and the server and lead to an increase in system resources of proxy servers and Web servers.
Another shortcoming of the prior art, particularly, the keyword-based prefetching technique, is that difficulty would be encountered when identifying the keyword that best fits the need of the user since a single keyword may be linked to a number of objects of different contents. Further, the order of the keywords cannot objectively be determined and keywords are likely to be selected based on users' experiences. Thus, hyperlinks that are likely to be accessed by users cannot accurately be predicted from keywords.
A further shortcoming of the prior art, particularly, the prior art that is based on request frequency and update intervals, is that target objects can be selected only from the history of users' requests. Prefetching cannot be performed for objects whose records for requests are not available. Usually, the response time of a cache that users would feel tends to be aggravated by user's requests for information of the type that cannot be cached or the type that have never been cached. Generally, there are few instances in which objects once loaded is requested again. Therefore, user's feeling for cache response would be significantly improved if objects yet to be loaded are fetched in advance of possible user's request.
A still further shortcoming of the prior art is that due to the need to analyze loaded object data for selecting a target object in response to a request from a user, a substantial amount of time is taken from the instant the request is received to the instant the target object is selected.